The present invention relates to computers, and deals more particularly with compilers used with declarative event-driven programs.
Event-driven application programs often use a declarative programming style. The application program may specify, for example, several different events that might be received during run-time execution of a particular system, and for each such event, how to respond to the event's occurrence.
This programming style is common in environments including, by way of example, business monitoring systems. A business monitoring system is a computer-based system for monitoring processes, devices, or any kind of items, circumstances, or phenomena (referred to equivalently herein as “monitored entities”) in the real world that change their state over time and may pertain to a given business (or a plurality of businesses), where a model may be defined for each monitored entity of interest and used to build or configure a computer-based system that receives event notifications and acts on those event notifications (referred to equivalently herein as “events”) in specified ways. The model may be referred to as a “monitor model”, as it describes the monitoring activities of interest for the monitored entities; more generally, the model may be referred to as an “observation model” (e.g., in a scenario not directed toward monitoring). A monitor model may define a type of object to be instantiated for each kind of monitored entity. The type would be instantiated as the monitored entity comes to life. The instance would subscribe to events that the entity emits, and build state information about the entity. These objects may be referred to as “monitoring contexts”, as they provide the context for monitoring the entity and detecting conditions of interest throughout its life cycle; more generally, these objects may be referred to as “observation objects” or “observer objects”.